package org.footballmanager.pandafootball.system.domain.enums;

import org.footballmanager.pandafootball.common.converter.BaseEnum;

import java.util.HashMap;
import java.util.Map;

/**
 * 报分类型枚举类
 * 包括热身赛，常规赛等
 * 使用枚举类可以有效的节省代码行数，调整系统的耦合度
 *
 * @author chenjian
 * @since 2017年9月27日上午10:57:28
 */
public enum BFLX implements BaseEnum<Integer> {
	HOTBODY(0, "热身赛"), NORMAL(1, "常规赛"), WINNER(2, "冠军杯"), ALLIANCE(3, "联盟杯"), GRID(4, "排位赛"),
	TOP(5, "天梯赛"), GROUP(6, "战队赛");

	/* 值 */
	private int value;

	/* 文字 */
	private String text;

	/* Map对象 */
	private static Map<Integer, BFLX> valueMap = new HashMap<>();

	static {
		for(BFLX mail : BFLX.values()) {
			valueMap.put(mail.getValue(), mail);
		}
	}

	/**
	 * 构造方法
	 * @param value
	 * @param text
	 */
	BFLX(int value, String text){
		this.value = value;
		this.text = text;
	}

	/**
	 * 获取值
	 * @param value 参数
	 * @return 返回值
	 */
	public static BFLX getByValue(int value) {
		BFLX result = valueMap.get(value);
		if(result == null) {
			throw new IllegalArgumentException("No element matches " + value);
		}
		return result;
	}

	/**
	 * 获取文字
	 * @param text 参数
	 * @return 返回值
	 */
	public static BFLX getByText(String text) {
		for (BFLX e : values()) {
			if(e.getText().equals(text)) {
				return e;
			}
		}
		return null;
	}

	@Override
	public String getText() {
		return text;
	}

	@Override
	public Integer getValue() {
		return value;
	}

}